const db = require('../db/index')

// 获取实验报告信息
exports.getReport = (req, res) => {
    const sql = 'select id,subject,title,objective,content,summarize,date,state,mark,comment from report where uid=?'
    db.query(sql, req.user.id, (err, results) => {
        if (err) return res.cc(err)
        res.send({
            status: 0,
            message: '获取实验报告成功！',
            data: results
        })
    })
}

// 新增实验报告
exports.postReport = (req, res) => {
    const reportInfo = req.body
    reportInfo.uid = req.user.id
    const sql = 'insert into report set ?'
    db.query(sql, reportInfo, (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('新增实验报告失败！')
        res.send({
            status: 0,
            message: '新增实验报告成功',
            data: results.insertId
        })
    })
}

//修改实验报告
exports.updateReport = (req, res) => {
    const sql = 'update report set ? where id=?'
    db.query(sql, [req.body, req.body.id], (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('修改实验报告失败！')
        res.cc('修改实验报告成功！', 0)
    })
}

// 教师获取实验报告
exports.getReportTeacher = (req, res) => {
    const sql = 'select * from report where subject=? and state=1'
    db.query(sql, req.body.subject, (err, results) => {
        if (err) return res.cc(err)
        res.send({
            status: 0,
            message: '获取实验报告成功！',
            data: results
        })
    })
}

// 删除实验报告
exports.delReport = (req, res) => {
    // 定义删除实验报告的sql语句
    const sql = 'delete from report where id=?'
    db.query(sql, req.body.id, (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('删除失败！')
        res.cc('删除成功！', 0)
    })
}

// 教师评价实验报告
exports.evaReport = (req, res) => {
    const sql = 'undate report set ? where id=?'
}

// 管理员获取实验报告
exports.getAllReport = (req, res) => {
    // 连表查询实验报告表和学生表
    const sql = 'select e.*,s.username from report as e join student as s on e.uid = s.id'
    db.query(sql, (err, results) => {
        if (err) return res.cc(err)
        res.send({
            status: 0,
            message: '获取成功',
            data: results
        })
    })
}

// 成绩构成
exports.getGradeResult = (req, res) => {
    const sql = 'select * from result_grade'
    db.query(sql, (err, results) => {
        if (err) return res.cc(err)
        res.send({
            status: 0,
            message: '获取成功',
            data: results
        })
    })
}

// 新增评分标准
exports.addGrdeResult = (req, res) => {
    // 定义新增评分标准的sql语句
    const sql = 'insert into result_grade set ?'
    db.query(sql, req.body, (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('新增失败！')
        res.cc('新增成功！', 0)
    })
}

//修改修改成绩构成
exports.updateGradeResult = (req, res) => {
    // 定义修改评分标准的sql语句,通过id号进行修改
    const sql = 'update result_grade set ? where id=?'
    db.query(sql, [req.body, req.body.id], (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('修改失败！')
        res.cc('修改成功！', 0)
    })
}

// 删除评分标准
exports.delGradeResult = (req, res) => {
    // 定义删除评分标准的sql语句,通过id号进行删除
    const sql = 'delete from result_grade where id=?'
    db.query(sql, req.body.id, (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('删除失败！')
        res.cc('删除成功！', 0)
    })
}

// 后端新增实验项目
exports.addExper = (req, res) => {
    // 定义将信息插入exper_project表中的sql语句
    const sql = 'insert into exper_project set ?'
    db.query(sql, req.body, (err, results) => {
        // 如果异常，则return
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('新增失败！')
        res.cc('新增成功！', 0)
    })
}

// 指定用户获取自己的实验项目
exports.getExper = (req, res) => {
    // 通过教师的工号uid，定义获取实验项目的sql语句
    const sql = 'select * from exper_project where uid=?'
    db.query(sql, req.user.id, (err, results) => {
        // 如果有未知错误，return出去
        if (err) return res.cc(err)
        // 没有错误，将结果results返回给前端
        res.send({
            status: 0,
            message: '获取成功！',
            data: results
        })
    })
}

// 删除使用项目
exports.delExper = (req, res) => {
    const sql = 'delete from exper_project where id=?'
    db.query(sql, req.body.id, (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('删除失败！')
        res.cc('删除成功！', 0)
    })
}

// 学生根据科目获取实验项目
exports.getSubExper = (req, res) => {
    const sql = 'select * from exper_project where kc=?'
    db.query(sql, req.body.kc, (err, results) => {
        if (err) return res.cc(err)
        res.send({
            status: 0,
            message: '获取成功！',
            data: results
        })
    })
}

// 后端获取全部的实验项目
exports.getExperAll = (req, res) => {
    // 定义获取所有实验项目的sql语句
    const sql = 'select * from exper_project'
    db.query(sql, (err, results) => {
        // 如果异常，则return出去
        if (err) return res.cc(err)
        // 没有错误，将results返回给前端
        res.send({
            status: 0,
            message: '获取成功！',
            data: results
        })
    })
}

//修改项目标志
exports.updateExperFlag = (req, res) => {
    const sql = 'update exper_project set ? where id=?'
    db.query(sql, [req.body, req.body.id], (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('修改失败！')
        res.cc('修改成功！', 0)
    })
}